iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 10
0
Modern Web

PHP框架-Symfony4 + api platform 系列 第 10

Day#10 API Platform 是什麼東西,能吃嗎 (((゚Д゚;)))

  • 分享至 

  • xImage
  •  

要使用api platform ,我們必須先執行以下command來安裝它的bundle

composer require api

API 會被套用在Entity實體類上,
雖然我們這三十篇沒有介紹到資料庫相關部分,但如果要用api platform ,我們必須要讓實體類跟資料庫做連接

安裝完bundle後,打開我們先前所建立的實體類,
假設此實體類已經與資料庫做連接,
我們要在這個實體類上加上API Resource 註解式,讓這個實體類被視為一個API Class

/**
 * @ORM\Entity
 * @ORM\Table(name="test_entity")
 * @TestCheck()
 * @ApiResource()
 */
class TestEntity
{

    /**
     * @var int
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     * @ORM\Column(name="id", type="integer")
     */
    private $id;


    /**
     * @ORM\Column(name="name",type="string",length=20,nullable=true)
     * @Assert\NotBlank()
     * @Assert\Length(max="20",min="5",maxMessage="長度不可超過20字",minMessage="長度不可低於5個字")
     */
    private $name;


    /**
     * @ORM\Column(name="email",type="string",length=50,nullable=true)
     * @Assert\Email()
     */
    private $email;

    /**
     * @return int
     */
    public function getId(): int
    {
        return $this->id;
    }

    /**
     * @param int $id
     */
    public function setId(int $id): void
    {
        $this->id = $id;
    }

    /**
     * @return mixed
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * @param mixed $name
     */
    public function setName($name): void
    {
        $this->name = $name;
    }





}

記得要import ApiPlatform\Core\Annotation\ApiResource 這個class哦!


API Resource 裡 ,放置的是關於這個實體類的API屬性設定,
例如collectionOperations(針對多筆資料的設定) ,
itemOperations(針對單筆資料的設定),
normalizationContext(物件變成陣列的設定),
denormalizationContext(陣列轉成物件的設定),
attributes(一些其他的設定),
後面幾篇會一一提到以上所說的屬性設定


額外補充一下,config目錄下的子目錄route裡的api_platform.yaml檔裡可以進行api platform的設定

例如api的標題、版本、描述、是否提供elastic search、是否提供swagger介面做api文件的匯出、是否關閉api入口....等等

這一篇的API Source 還是空的,
下一篇開始會陸續把屬性設定加進去,這一篇由於是安裝及前置作業,就不講太多也不講得太複雜了

後面的設定跟使用也不會太困難~希望小菜鳥我的講解還算清楚...不會讓各位看官們產生我是誰我在哪我在幹嘛的錯覺


上一篇
Day#9 你來我往的Server端與Client端 - Http 簡單說明
下一篇
Day#11 Api Platform 裡的兩大設定,針對單筆資料及多筆,除了數量外,它們其實大不同R ( ゚∀゚)o彡゚
系列文
PHP框架-Symfony4 + api platform 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言